package cn.imnaer.service.rest.sharephoto;

import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;

@Path(value = "/user/sharePhoto")
public interface SharePhotoComponentRestApi {

    @POST
    @Path("/create")
    @Produces("application/json;charset=UTF-8")
    public String createPhoto(String sharePhotoJson);

    @GET
    @Produces("application/json;charset=UTF-8")
    @Path("/delete/{sharePhotoId}")
    public String deleteSharePhoto(@PathParam("sharePhotoId") String sharePhotoId);
    @POST
    @Path("/list/{targetUserId}")
    @Produces("application/json;charset=UTF-8")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public String getSharePhotoListByUserId(String json, @PathParam("targetUserId") String targetUserId);
    @GET
    @Path("/myList/{userId}")
    @Produces("application/json;charset=UTF-8")
    public String getMyAllSharePhotoList(@PathParam("userId") String userId);
    @GET
    @Produces("application/json;charset=UTF-8")
    @Path("/detail/{myUserId}/{sharePhotoId}")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public String sharePhotoDetail(@PathParam("myUserId") String myUserId, @PathParam("sharePhotoId") String sharePhotoId);
    @GET
    @Produces("application/json;charset=UTF-8")
    @Path("/detailByItem/{myUserId}/{sharePhotoItemId}")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public String sharePhotoDetailByItemId(@PathParam("myUserId") String myUserId,@PathParam("sharePhotoItemId") String sharePhotoItemId);

    @GET
    @Produces("application/json;charset=UTF-8")
    @Path("/support/list/{myUserId}/{sharePhotoItemId}")
    public String sharePhotoItemSupportList(@PathParam("myUserId") String myUserId, @PathParam("sharePhotoItemId") String sharePhotoItemId);

    @GET
    @Produces("application/json;charset=UTF-8")
    @Path("/support/update/{myUserId}/{sharePhotoItemId}/{isSupport}")
    public String updateSupportStatusForSharePhotoItem(@PathParam("myUserId") String myUserId, @PathParam("sharePhotoItemId") String sharePhotoItemId, @PathParam("isSupport") long isSupport);

    @GET
    @Produces("application/json;charset=UTF-8")
    @Path("/comment/list/{myUserId}/{sharePhotoItemId}")
    public String sharePhotoItemCommentList(@PathParam("myUserId") String myUserId, @PathParam("sharePhotoItemId") String sharePhotoItemId);

    @POST
    @Produces("application/json;charset=UTF-8")
    @Path("/comment")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public String sharePhotoItemComment(String sharePhotoCommentJson);

    @POST
    @Produces("application/json;charset=UTF-8")
    @Path("/comment/remove/{commentId}/{myUserId}")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public String removeSharePhotoItemComment(@PathParam("commentId") String commentId,@PathParam("myUserId") String myUserId);


    @POST
    @Produces("application/json;charset=UTF-8")
    @Path("/nearBy/{pageIndex}")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public String nearBy(String coordinateJson, @PathParam("pageIndex") Integer pageIndex);


    @GET
    @Produces("application/json;charset=UTF-8")
    @Path("/search")
    public String search(@QueryParam("keyword") String keyword);

    @GET
    @Produces("application/json;charset=UTF-8")
    @Path("/friendCircle/{userId}/{criteriaTime}/{isUpdate}")
    public String friendCircle(@PathParam("userId") String userId, @PathParam("criteriaTime") long criteriaTime, @PathParam("isUpdate") long isUpdate);


    @GET
    @Produces("application/json;charset=UTF-8")
    @Path("/friendExperience/{userId}/{scenicId}/{criteriaTime}/{isUpdate}")
    public String friendExperience(@PathParam("userId") String userId, @PathParam("scenicId") String scenicId, @PathParam("criteriaTime") long criteriaTime, @PathParam("isUpdate") long isUpdate);

}
